Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Как создать Location Number (Wladim)
Author Message
Wladim
Заглянувший



Joined: 19 Apr 2012
Posts: 2
Карма: -1
   поощрить/наказать


PostPosted: Thu Apr 19, 2012 10:03 pm (написано за 1 минуту 21 секунду)
   Post subject: Как создать Location Number
Reply with quote

При регистрации пользователя надо создать Location Number, используя дату регистрации и ID. И записать этот Location Number в базу данных, куда записывается пользователь при регистрации.
Как вариант есть такой код:
Code (php): скопировать код в буфер обмена
//
$zapros1="SELECT `id` FROM `date` WHERE `loga` = '$loga' AND `passw` = '$passw'";
$result1=mysql_query (www.php.net/mysql_query)($zapros1);
$result = mysql_fetch_object (www.php.net/mysql_fetch_object)($result1);
$id = $result->id;
$data = date (www.php.net/date)("Ymd");
$id = str_repeat (www.php.net/str_repeat)('0', 6 - strlen (www.php.net/strlen)((string)$id)) . $id; //
$loc_num = $data.$id;
//
//
if (isset (www.php.net/isset)($loc_num))
{
//
$result1 = mysql_query (www.php.net/mysql_query) ("UPDATE `date` SET `loc_num` = '$loc_num' WHERE `id` = '$id'");
А в результате выдает ошибку на строку
Code (php): скопировать код в буфер обмена
$id = $result->id
Quote:
Notice: Trying to get property of non-object in X:\home\service\www\add_avtor.php on line 05
и вместо Location Number 20120407000321 записывает в таблицу базы данных 20120407000000
Попробовал другой вариант:
Code (php): скопировать код в буфер обмена
//
$zapros="SELECT id FROM date WHERE loga='$loga' AND passw='$passw'";
$result=mysql_query (www.php.net/mysql_query)($zapros);
if (!$result) die (www.php.net/die)('Invalid query: '.mysql_error());
$id = mysql_result (www.php.net/mysql_result)($result, 0);
//
$id = set_zero_avto($id,$DLIN_KEY); //
$loc_num = $data.$id;
и теперь выдает ошибку на строку
Code (php): скопировать код в буфер обмена
$id = mysql_result (www.php.net/mysql_result)($result, 0);
Quote:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 10 in X:\home\service\www\add_avtor.php on line 5
Что я делаю не так?
Помогите, пожалуйста, исправить код.
Back to top
View user's profile Send private message
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9986
   поощрить/наказать


PostPosted: Thu Apr 19, 2012 10:17 pm (спустя 14 минут; написано за 1 минуту 17 секунд)
   Post subject:
Reply with quote

phpfaq.ru/debug
И

!

forum.dklab.ru/about/todo/PravilaEtogoForuma-ProchitayteObyazatelno.html — особенно про то, как правильно задавать вопросы: сообщения об ошибках надо приводить дословно.
Back to top
View user's profile Send private message
Maus
Модератор



Joined: 29 Jun 2003
Posts: 8151
Карма: 271
   поощрить/наказать

Location: пос. Омсукчан Магаданской области

PostPosted: Tue Jun 12, 2012 12:44 am (спустя 1 месяц 22 дня 2 часа 26 минут; написано за 11 минут 13 секунд)
   Post subject:
Reply with quote

Wladim wrote:
Code (php): скопировать код в буфер обмена
// СОЗДАНИЕ Location Number
$zapros="SELECT id FROM date WHERE loga='$loga' AND passw='$passw'";
$result=mysql_query (www.php.net/mysql_query)($zapros);
if (!$result) die (www.php.net/die)('Invalid query: '.mysql_error());
$id = mysql_result (www.php.net/mysql_result)($result, 0);
в обоих случаях код безрадостный. Разберём этот.
SQL-запрос может быть корректным и ошибочным. С ошибочным тут всё понятно - выдаём сообщение с ошибкой и помираем. Корректный SELECT запрос может содержать сколько-то строк результата, а может ничего не содержать - ну просто не нашлось подходящих под запрос данных. И этого код уже не учитывает.
правильнее было бы написать так:
Code (php): скопировать код в буфер обмена
if (!$result) die (www.php.net/die)('Invalid query: '.mysql_error());
if ( mysql_num_rows (www.php.net/mysql_num_rows)($result) )
{
    $id = mysql_result (www.php.net/mysql_result)($result, 0);
    //...some code ...
}
или так:
Code (php): скопировать код в буфер обмена
if (!$result) die (www.php.net/die)('Invalid query: '.mysql_error());
// при нулевом количестве строк функция вернёт false
if ( $row = mysql_fetch_assoc (www.php.net/mysql_fetch_assoc)($result) )
{
    // у Вас ведь идентификаторы - натуральные числа?
    $id = (int) $row['id'];
    //...some code ...
}
Вообще, если Вы только изучаете работу с MySQL, то не связывайтесь с mysql_result(), mysql_field_seek() и тому подобной экзотикой. Они применяются дай бог в 0.01% случаев.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML